package com.jia.mall.product;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;


/**
 * 1、整合mybatis—plus，导入依赖，在公共类中已经导入了mybatis-plus的springbbot  starter
 * 2、配置
 *   （1）配置数据源：导入数据库的驱动、在application.yml中配置数据源相关信息
 *   （2）配置mybatis-plus：使用@MapperScan、告诉mybatis-plus sql映射文件（用来写复杂sql语句）
 *
 * MybatisPlus的逻辑删除
 *   1、配置MybatisPlus全局的逻辑删除规则（可省略）
 *   2、配置逻辑删除的组件Bean（可省略）
 *   3、给数据库表中对应的字段加上逻辑删除注解@TableLogic
 *
 * JSR303后台校验，前端防君子不防小人，后台是来防小人的
 *   1、给Bean添加校验注解，BrandEntity实例添加注解
 *   2、在controller中添加@Valid
 *     效果就是：校验错误之后会有默认的响应
 *     BindingResult就封装了校验地结果
 *   3、分组校验
 *     @NotBlank(message = "品牌名不能为空",groups = {AddGroup.class,UpdateGroup.class})
 *     给校验注解标注什么情况需要进行校验
 *     @Validated({AddGroup.class})
 *     如果在分组校验的情况下，不指定分组，就不会生效
 *   4、自定义校验
 *     编写一个自定义校验注解
 *     编写一个自定义的校验器
 *     关联自定义校验器和自定义的校验注解
 *
 *  统一的异常处理
 * @ControllerAdvice
 * 1、编写异常处理类，使用@ControllerAdvice
 * 2、使用@ExceptionHandler标注方法可以异常处理的异常
 *
 *
 */


@MapperScan("com.jia.mall.product.dao")
@SpringBootApplication
@EnableDiscoveryClient
public class MallProductApplication {

    public static void main(String[] args) {
        SpringApplication.run(MallProductApplication.class, args);
    }

}
